package com.rybbaby.tss.front.tssMemberReturnPremium.entity;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @description 会员退费记录表
 * 
 * @author 雷春琼
 * 
 * @createDate 2017-08-10 上午12:14:02
 */
@Entity
@Table(name = "tss_member_return_premium")
@DynamicUpdate(true)
@DynamicInsert(true)
public class TssMemberReturnPremium implements Serializable {
	
	private static final long serialVersionUID = 54590505314886L;
	
	/** 主键 **/
	private String id;
	/** 会员Id **/
	private String memberId;
	/** 退课时数 **/
	private Integer classHour;
	/** 课时包Id **/
	private String packageId;
	/** 缴费id **/
	private String paymentId;
	/** 备注 **/
	private String remark;
	/** 退费金额 **/
	private Double amout;
	/**  当前操作者 **/
	private String adminUserId;
	/**  申请人 **/
	private String createId;
	/**  退费编码 **/
	private String refundCode;
	/**  退费状态 **/
	private Integer refundStatus;
	/**  审批意见 **/
	private String approvalRemark;
	/**  退费类型 **/
	private Integer refundType;
	/** 创建时间 **/
	private java.sql.Timestamp createTime;
	/** 修改时间 **/
	private java.sql.Timestamp updateTime;
	/** 是否删除 **/
	private Integer isDelete;
	/** 版本 **/
	private Integer version;
	/** 退费总金额 **/
	private Double sumAmout;
	
	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "tss_member_return_premiumIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "tss_member_return_premiumIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 32)
	public String getId() {
		return this.id;
	}
	
	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}
	
	/**
	 * 方法: 取得会员Id
	 *
	 * @return java.lang.String 会员Id
	 */
	@Column(name = "memberId", nullable= true, length = 32)
	public String getMemberId() {
		return this.memberId;
	}
	
	/**
	 * 方法: 设置会员Id
	 *
	 * @param memberId 会员Id
	 */
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}
	
	/**
	 * 方法: 取得退课时数
	 *
	 * @return java.lang.Integer 退课时数
	 */
	@Column(name = "classHour", nullable= true, length = 11)
	public Integer getClassHour() {
		return this.classHour;
	}
	
	/**
	 * 方法: 设置退课时数
	 *
	 * @param classHour 退课时数
	 */
	public void setClassHour(Integer classHour) {
		this.classHour = classHour;
	}
	
	/**
	 * 方法: 取得课时包Id
	 *
	 * @return java.lang.Integer 课时包Id
	 */
	@Column(name = "packageId", nullable= true, length = 32)
	public String getPackageId() {
		return this.packageId;
	}
	
	/**
	 * 方法: 设置课时包Id
	 *
	 * @param packageId 课时包Id
	 */
	public void setPackageId(String packageId) {
		this.packageId = packageId;
	}
	

	
	/**
	 * 方法: 取得退费金额
	 *
	 * @return java.lang.Double 退费金额
	 */
	@Column(name = "amout", nullable= true, length = 22)
	public Double getAmout() {
		return this.amout;
	}
	
	/**
	 * 方法: 设置退费金额
	 *
	 * @param amout 退费金额
	 */
	public void setAmout(Double amout) {
		this.amout = amout;
	}
	
	/**
	 * 方法: 取得
	 *
	 * @return java.lang.String 
	 */
	@Column(name = "adminUserId", nullable= true, length = 32)
	public String getAdminUserId() {
		return this.adminUserId;
	}
	
	/**
	 * 方法: 设置
	 *
	 * @param adminUserId
	 */
	public void setAdminUserId(String adminUserId) {
		this.adminUserId = adminUserId;
	}
	

	
	/**
	 * 方法: 取得创建时间
	 *
	 * @return java.sql.Timestamp 创建时间
	 */
	@Column(name = "createTime", nullable= true, length = 19)
	public java.sql.Timestamp getCreateTime() {
		return this.createTime;
	}
	
	/**
	 * 方法: 设置创建时间
	 *
	 * @param createTime 创建时间
	 */
	public void setCreateTime(java.sql.Timestamp createTime) {
		this.createTime = createTime;
	}
	
	/**
	 * 方法: 取得修改时间
	 *
	 * @return java.sql.Timestamp 修改时间
	 */
	@Column(name = "updateTime", nullable= true, length = 19)
	public java.sql.Timestamp getUpdateTime() {
		return this.updateTime;
	}
	
	/**
	 * 方法: 设置修改时间
	 *
	 * @param updateTime 修改时间
	 */
	public void setUpdateTime(java.sql.Timestamp updateTime) {
		this.updateTime = updateTime;
	}
	
	/**
	 * 方法: 取得版本
	 *
	 * @return java.lang.Integer 版本
	 */
    @Version
	@Column(name = "version", nullable= true, length = 11)
	public Integer getVersion() {
		return this.version;
	}
	
	/**
	 * 方法: 设置版本
	 *
	 * @param version 版本
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}

	@Column(name = "remark", nullable= true, length = 500)
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "paymentId", nullable= true, length = 32)
	public String getPaymentId() {
		return paymentId;
	}

	public void setPaymentId(String paymentId) {
		this.paymentId = paymentId;
	}

	@Column(name = "refundCode", nullable= true, length = 32)
	public String getRefundCode() {
		return refundCode;
	}

	public void setRefundCode(String refundCode) {
		this.refundCode = refundCode;
	}

	@Column(name = "approvalRemark", nullable= true, length = 500)
	public String getApprovalRemark() {
		return approvalRemark;
	}

	public void setApprovalRemark(String approvalRemark) {
		this.approvalRemark = approvalRemark;
	}

	@Column(name = "refundStatus", nullable= true, length = 11)
	public Integer getRefundStatus() {
		return refundStatus;
	}

	public void setRefundStatus(Integer refundStatus) {
		this.refundStatus = refundStatus;
	}

	@Column(name = "refundType", nullable= true, length = 11)
	public Integer getRefundType() {
		return refundType;
	}

	public void setRefundType(Integer refundType) {
		this.refundType = refundType;
	}

	@Column(name = "createId", nullable= true, length = 32)
	public String getCreateId() {
		return createId;
	}

	public void setCreateId(String createId) {
		this.createId = createId;
	}

	@Column(name = "isDelete", nullable= true, length = 32)
	public Integer getIsDelete() {
		return isDelete;
	}

	public void setIsDelete(Integer isDelete) {
		this.isDelete = isDelete;
	}

	@Transient
	public Double getSumAmout() {
		return sumAmout;
	}

	public void setSumAmout(Double sumAmout) {
		this.sumAmout = sumAmout;
	}
}